If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler
NEW : We have got a new blog where we post some interesting SWF internals info.

#1267 Importing SVG creates empty fillStyles array
Author:
fratti

Date created:
Type: question
Visibility: Everybody
Assigned to:
State: closed 

If an SVG with multiple shapes is imported, the application will leave the fillStyles
array empty, and the shape will not show up in the output SWF.
> What steps will reproduce the problem?
1. Replace existing vector shape by importing SVG with multiple objects in it
2. Try saving the SWF
3. Note how the shape is not visible in the output
> What is the expected output? What do you see instead?
Instead of defining the styles inside the StyleChangeRecords, define them per-shape once
and then reference them by index in the StyleChangeRecords
> What version of the product are you using? Is it "nightly build"? Which operating system
do you have?
nightly build (git HEAD) on Arch Linux x86_64
$ java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
> Please provide any additional information below. If the problem is related to a SWF
file, attach it here, otherwise we can't help you.
The attached SVG is the one I'm trying to import. The SWF is the one I'm trying to edit.


Why is it a problem? The (visual) result is the same...
The visual result is not the same, at least I suspect this is the reason. In the output,
the shape is not visible if I replace it, and the only difference I can see is the
fillStyles thing. If anyone has a different explanation as to why it doesn't show up,
please let me know.
It should be the same. As far as I know the StyleChangeRecord replaces the existing
styles.
I tried to replace the first shape (characterid = 1) with the SVG you attached, I can see
the gorilla in FFDec, however it is a little bit buggy, but it is not because of the
missign fillstyles.
I can also see the gorilla in ffdec, but not in the output when viewed with Pepperflash in
Chromium.
Any idea why this could be?
I don't know that, but in normal Chome and in Ms Edge I can see it. They are using
standard flash player, I don't know what is pepperflash.
Chrome is using pepperflash, it's just sandboxed flash player using a Chrome API.
Can you tell me the exact steps you took to replace the Billy Mays shape with the SVG?
When I do it, I don't see it in the output.
I replaced the vector backgound, not the guy.
- open original SWF
- open shapes in left tree
- right click on the first shape
- select Replace (or replace - update bounds if you want to increase the size of the
shape)
- select the svg file, press open
- press OK in the warning dialog
- sleect File/save as, save the file
- open the new SWF in chrome
Okay, I'm trying to replace the guy which is why we're seeing different results I presume.
If you want to replace the guy, then the problem is that the gorilla is simply too big.
The guy (shape 5-8) is 230x199 px
the gorilly is 802x494, and the upper left corner (230x199px) is empty...
You should resize your SVG first.
Okay, thanks. I didn't even think of size issues! I resized the SVG, and it all looks good
in ffdec, but in the output flash there are weird streaks through it and part of it is
missing. Any idea what could be going on with that?
Here's the flash file. It looks like ffdec is not properly handling some of the SVG
shapes, if you look at the shading on the right of the SVG.

The problem is that the svg contains some features which is not supported in flash.
In your case the problem is the cubic curves in 'd' attribute of 'path' tag. ('c' or 'C'
commands)
Sometimes it is not possibble to convert them to quad curves. (Calculation retuns infinite
number, this is why there are long parallel lines)
This svg is quite complex, why don't you use a bitmap image (png, jpg), probably they are
even smaller?
Okay yeah, using a PNG works, thanks!
What also worked a bit was to break apart the shapes of the SVG, but it would be a lot of
work to do so manually.
Thanks for the help, you can close this now since it's not really a bug.
State: new→closed
Type: bug→question
Type: bug→question